package map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Dict {

    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("Li Xiaohong", new Integer(3));
        map.put("Zou Encen", new Integer(5));
        map.put("Lucy", new Integer(4));
        map.put("Lily", new Integer(8));

        String key = "Li Xiaohong";
        Integer value = 0;
        if (map.containsKey(key))
        {
            value = (Integer) map.get(key);
            System.out.println(key+":  对苹果的喜欢程度 :"+value);
        }
        else
        {
            System.out.println("Does not contain key:" + key);
        }

        key = "Tom";
        if (map.containsKey(key))
        {
            value = (Integer) map.get(key);
            System.out.println(key+":  对苹果的喜欢程度 :"+value);
        }
        else
        {
            System.out.println("Does not contain key:" + key);
        }

        // 迭代器与下标的概念是类似的，有些数据结构没有下标操作（例如，链表，哈希映射），则我们访问这些数据结构的元素时，需要使用迭代器iterator来代替下标index。
        // Map.Entry叫做map的条目，一个条目是一个key-value对
        // Iterator.next()操作，是使迭代器移动到map的下一个下元素上
        // Entry.getKey()方法，用来从当前key-value对中获取key
        // Entry.getValue()用来从当前key-value对中获取value
        Iterator it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry entry = (Map.Entry) it.next();
            key=(String) entry.getKey();
            value=(Integer) entry.getValue();
            System.out.println(key+":  对苹果的喜欢程度 :"+value);
        }

    }
}

